package com.sky.config;

import io.lettuce.core.dynamic.RedisCommandFactory;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.RedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.serializer.StringRedisSerializer;

@Configuration
@Slf4j
public class RedisConfiguration {
    @Bean//加上bean就会按照类型间工厂对象注入进来
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){//返回值类型为RedishTemplate
        log.info("开始创建redis模板对象...");
        RedisTemplate redisTemplate = new RedisTemplate();
        //设置redis连接工厂对象//工程对象并不需要我们自己去创建,因为我们引入了start-data-redis
        //这个start 会帮我们创建工厂对象 并注入IOC容器
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //设置redis key的序列化器 (没有这个序列化器的话 我们的redis数据库的key 会乱码的)
        redisTemplate.setKeySerializer(new StringRedisSerializer());//字符串类型的redis序列化器
        return redisTemplate;
    }
}
